﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

class Program
{
    static void Main(string[] args)
    {
        // baza de date ce memoreaza informatiile in memorie
        CustomDatabase memdb = DatabaseFactory.getDatabase(0);
        Customer client1, client2, client3;

        client1 = new Customer();
        client1.setNume("Andrei");
        client1.setComputer(0);
        client1.setProcNume("Athlon_64");
        client1.setRAMNume("4_GB_RAM");
        client1.setMonitorNume("monitor_19\"");

        client2 = new Customer();
        client2.setNume("Mihai");
        client2.setComputer(1);
        client2.setProcNume("Celeron");
        client2.setRAMNume("512_MB_RAM");
        client2.setMonitorNume("monitor_17\"");

        client3 = new Customer();
        client3.setNume("George");
        client3.setComputer(2);
        client3.setProcNume("Pentium_4");
        client3.setRAMNume("1_GB_RAM");
        client3.setMonitorNume("monitor_17\"");

        ((MemoryDatabase)memdb).storeCustomer(client1);
        ((MemoryDatabase)memdb).storeCustomer(client2);
        ((MemoryDatabase)memdb).storeCustomer(client3);
        Console.WriteLine("Baza de date din MEMORIE:");
        ((MemoryDatabase)memdb).printCustomers();

        ((MemoryDatabase)memdb).deleteCustomer(client2);
        Console.WriteLine("\nBaza de date din MEMORIE dupa stergere client2:");
        ((MemoryDatabase)memdb).printCustomers();



        // baza de date ce memoreaza informatiile in fisier
        CustomDatabase diskdb = DatabaseFactory.getDatabase(1);

        ((DiskDatabase)diskdb).storeCustomer(client1);
        ((DiskDatabase)diskdb).storeCustomer(client2);
        ((DiskDatabase)diskdb).storeCustomer(client3);

        Console.WriteLine("\n\n\nBaza de date de pe DISC:");
        ((DiskDatabase)diskdb).printCustomers();

        ((DiskDatabase)diskdb).deleteCustomer(client1);
        Console.WriteLine("\nBaza de date de pe DISC dupa stergere client1:");
        ((DiskDatabase)diskdb).printCustomers();

        Console.Read();
    }
}